package xj.graph2d.shapes;

import java.awt.geom.Point2D;
import java.awt.geom.Rectangle2D;

import xj.graph2d.DrawShape;

public interface HorizontalCompartments 
  extends Compartments {

  public void moveHorizontalDivider(int i, float dy);

  public void setHorizontalDividers(float[] dividers);

  public float[] getHorizontalDividers();

  public int getNumberOfHorizontalCompartments();

  public Rectangle2D getHorizontalCompartmentBounds(int i);

  public Point2D getHorizontalCompartmentCenter(int i);

  public float getHorizontalCompartmentHeight(int i);

  // relative to the top of the shape 
  public float getHorizontalCompartmentTop(int i);

  public int inHorizontalCompartment(DrawShape s);

  public boolean isNumberOfHorizontalCompartmentsFixed();

  public void setNumberOfHorizontalCompartmentsFixed(boolean b);

  public boolean isScaleTopCompartment();

  public void setScaleTopCompartment(boolean scaleTopCompartment);

  public void addHorizontalDivider(int p, float dy);

  public void removeHorizontalDivider(int p);

  public void adjustHorizontalDividers(float dy, boolean top);

}
